home *** CD-ROM | disk | FTP | other *** search
/ Ham Radio 2000 #2 / Ham Radio 2000 - Volume 2.iso / HAMV2 / MISC / HCAL-27 / QRESON.BAS (.txt) < prev    next >
Encoding:
GW-BASIC  |  1997-01-29  |  3.0 KB  |  109 lines

  1. 10  'QRESON - Q of Resonant Circuits - 17 DEC 94  rev. 27 SEP 96
  2. 20  IF EX$=""THEN EX$="EXIT"
  3. 30  CLS:KEY OFF
  4. 40  COLOR 7,0,1
  5. 50  PI=3.14159
  6. 60  U1$="###,###.###"
  7. 70  UL$=STRING$(80,205)
  8. 80  E$=STRING$(80,32)
  9. 90  '
  10. 100  '.....start
  11. 110  CLS:F=0:L=0:C=0:X=0:R=0:Q=0:J$="":Z$=""
  12. 120  COLOR 15,2
  13. 130  PRINT " Q CALCULATOR, Resonant Circuits";TAB(57);"by George Murphy VE3ERP";
  14. 140  COLOR 1,0:PRINT STRING$(80,223);
  15. 150  COLOR 0,7:LOCATE 13,22
  16. 160  PRINT " Press 1 to RUN program or 0 to EXIT....."
  17. 170  COLOR 7,0
  18. 180  Y$=INKEY$:IF Y$=""THEN 180
  19. 190  IF Y$="0"THEN CLS:RUN EX$
  20. 200  IF Y$="1"THEN 220
  21. 210  GOTO 180
  22. 220  LOCATE CSRLIN-1:PRINT E$;:LOCATE CSRLIN-1
  23. 230  '
  24. 240  '.....inputs
  25. 250  LOCATE 3
  26. 260  IF F=0  THEN INPUT " ENTER: Frequency (MHz)...................";Y:GOSUB 330
  27. 270  IF L=0  THEN INPUT " ENTER: Inductance (>H)...................";L:GOSUB 330
  28. 280  IF C=0  THEN INPUT " ENTER: Capacitance (pF)..................";C:GOSUB 330
  29. 290  IF X=0  THEN INPUT " ENTER: Reactance, XL, XC (ohms)..........";X:GOSUB 330
  30. 300  IF F*L*C*X>0 THEN 330
  31. 310  VIEW PRINT 3 TO 24:CLS:VIEW PRINT:GOTO 240
  32. 320  '
  33. 330  '.....calculate
  34. 340  IF F=0 AND Y>0   THEN F=Y*10^3
  35. 350  IF F=0 AND L*C>0 THEN F=10^6/(2*PI*SQR(L*C)):GOTO 330
  36. 360  IF F=0 AND X*L>0 THEN F=10^3*X/(2*PI*L):     GOTO 330
  37. 370  IF F=0 AND X*C>0 THEN F=10^9*1/(2*PI*C*X):   GOTO 330
  38. 380  IF L=0 AND F*C>0 THEN L=(10^6/(2*PI*F))^2/C: GOTO 330
  39. 390  IF L=0 AND F*X>0 THEN L=X/(2*PI*F)*10^3:     GOTO 330
  40. 400  IF C=0 AND F*L>0 THEN C=(10^6/(2*PI*F))^2/L: GOTO 330
  41. 410  IF C=0 AND F*X>0 THEN C=1/(2*PI*F*X)*10^3:   GOTO 330
  42. 420  IF X=0 AND F*L>0 THEN X=2*PI*F*L/10^3:       GOTO 330
  43. 430  IF X=0 AND F*C>0 THEN X=2*PI*F*C/10^3:       GOTO 330
  44. 440  IF F*L*C*X>0 THEN 470
  45. 450  RETURN
  46. 460  '
  47. 470  '.....print
  48. 480  VIEW PRINT 3 TO 24:CLS:VIEW PRINT:LOCATE 3
  49. 490  PRINT " Frequency (MHz).........................";USING U1$;F/10^3
  50. 500  PRINT " Inductance (>H).........................";USING U1$;L
  51. 510  PRINT " Capacitance (pF)........................";USING U1$;C
  52. 520  PRINT " Reactance XL, XC (ohms).................";USING U1$;X
  53. 530  LN=CSRLIN
  54. 540  PRINT UL$;
  55. 550  IF Z$<>""THEN 670
  56. 560  '
  57. 570  PRINT " Press number in < > to describe resonant circuit:"
  58. 580  PRINT "   < 1 >  SERIES resonant (unloaded)"
  59. 590  PRINT "   < 2 >  PARALLEL resonant (loaded by a resistive impedance)"
  60. 600  J$=INKEY$
  61. 610  IF J$="1"THEN R$=" Series resistance (ohms)................":GOTO 640
  62. 620  IF J$="2"THEN R$=" Parallel load resistance (ohms).........":GOTO 640
  63. 630  GOTO 600
  64. 640  VIEW PRINT LN TO 24:CLS:VIEW PRINT:LOCATE LN
  65. 650  PRINT " ENTER:";R$;:INPUT R
  66. 660  '
  67. 670  LOCATE CSRLIN-1:PRINT E$;:LOCATE CSRLIN-1
  68. 680  PRINT R$;USING U1$;R
  69. 690  IF J$="1"THEN Q=X/R:Q$=" Series unloaded resonant circuit Q......"
  70. 700  IF J$="2"THEN Q=R/X:Q$=" Parallel loaded resonant circuit Q......"
  71. 710  PRINT Q$;USING U1$;Q
  72. 720  PRINT UL$;
  73. 730  LN=CSRLIN:GOSUB 960
  74. 740  LOCATE 25,1:PRINT E$;
  75. 750  LOCATE LN
  76. 760  PRINT " Press number in < > to:"
  77. 770  PRINT UL$;
  78. 780  PRINT "   <0>  QUIT"
  79. 790  PRINT "   <1>  CHANGE Q"
  80. 800  I$=INKEY$
  81. 810  IF I$="0"THEN 920
  82. 820  IF I$="1"THEN 850
  83. 830  GOTO 800
  84. 840  '
  85. 850  COLOR 0,7:LOCATE CSRLIN,4:INPUT " ENTER: new Q";NQ
  86. 860  COLOR 7,0
  87. 870  IF J$="1"THEN X=R*NQ
  88. 880  IF J$="2"THEN X=R/NQ
  89. 890  VIEW PRINT 3 TO 24:CLS:VIEW PRINT
  90. 900  L=0:C=0:GOTO 330
  91. 910  '
  92. 920  '.....end
  93. 930  GOTO 100  'start
  94. 940  END
  95. 950  '
  96. 960  'HARDCOPY
  97. 970  GOSUB 1080:LOCATE 25,2:COLOR 14,6
  98. 980  PRINT " Press 1 to print screen, 2 to print screen & ";
  99. 990  PRINT "advance paper, or 3 to continue.";:COLOR 7,0
  100. 1000  Z$=INKEY$:IF Z$="3"THEN GOSUB 1080:RETURN
  101. 1010  IF Z$="1"OR Z$="2"THEN GOSUB 1080:GOTO 1030
  102. 1020  GOTO 1000
  103. 1030  FOR QX=1 TO 24:FOR QY=1 TO 80
  104. 1040  LPRINT CHR$(SCREEN(QX,QY));
  105. 1050  NEXT QY:NEXT QX
  106. 1060  IF Z$="2"THEN LPRINT CHR$(12)
  107. 1070  GOTO 970
  108. 1080  LOCATE 25,1:PRINT STRING$(80,32);:RETURN
  109.